package com.huaxin.hxmodulesystem.dto.request;

import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;

@Data
@Schema(description = "新增用户请求DTO")
public class AddUserReqDTO {

    @NotBlank(message = "用户名不能为空")
    @Schema(description = "用户名", requiredMode = Schema.RequiredMode.REQUIRED, example = "zhangsan")
    private String username;

    @NotBlank(message = "手机号不能为空")
    @Schema(description = "手机号（唯一，用于登录）", example = "13800138000")
    private String phone;

    @NotBlank(message = "密码不能为空")
    @Schema(description = "加密后的密码", requiredMode = Schema.RequiredMode.REQUIRED, example = "加密后的字符串")
    private String password;

    @Schema(description = "微信 OpenID", example = "oABC123...")
    private String wechatOpenid;

    @Schema(description = "微信 UnionID", example = "uXYZ789...")
    private String wechatUnionid;

    @Schema(description = "登录类型：1=手机号，2=微信", example = "1")
    private Integer loginType;

    @Schema(description = "用户昵称", example = "张三")
    private String nickname;

    @Schema(description = "头像 URL", example = "https://xxx.com/avatar.png")
    private String avatarUrl;

    @Schema(description = "用户类型：1=后台管理员，2=App用户，3=小程序用户", example = "1")
    private Integer userType;

    @Schema(description = "状态：0=禁用，1=启用", example = "1")
    private Integer status;

    @Schema(description = "区域", example = "华东区")
    private String area;

    /**
     * 地址
     */
    @Schema(description = "地址", example = "重庆市重庆市渝北区....")
    private String address;
    /**
     * 经度
     */
    @Schema(description = "经度", example = "116.397128")
    private String longitude;
    /**
     * 纬度
     */
    @Schema(description = "纬度", example = "39.908")
    private String latitude;
    /**
     * 身份证-人物面
     */
    @Schema(description = "法人身份证-人物面", example = "")
    private String idCardCharacter;
    /**
     * 身份证-国徽面
     */
    @Schema(description = "法人身份证-国徽面", example = "")
    private String idCardNationalEmblem;
    /**
     * 组织机构代码
     */
    @Schema(description = "组织机构代码", example = "1")
    private String orgCode;
    /**
     * 组织管理员电话
     */
    @Schema(description = "组织管理员电话", example = "1")
    private String OrgAdminTel;

    /**
     * 管理员真实姓名
     */
    @Schema(description = "管理员真实姓名", example = "张三")
    private String adminRealName;
}